The present invention relates to fault-tolerant communications controller systems. More specifically, it relates to using redundant components and redundant internal communications paths to assure continued operation during single component failures.
Communication between computer systems is common. Whenever data is transmitted, either to a remote port for human use, to another node in a wide-area network, or to a transmission station in a switching network, a communications line must exist between the sending and receiving devices. This communications line is typically controlled by a communications controller.
To send data over the communications line, a processor must control the communications controller by sending it commands and receiving status reports. The processor uses the communications controller to communicate data to a plurality of remote ports. The processor communicates with the communications controller over a data bus. An error in the processor, controller, line or bus can disable communications. In the typical computer system, multiple communications lines are linked to the processor through the communications controller. Thus, a single error can terminate all communications between the processor and the remote ports.
To avoid this, one method employed by the prior art is to provide redundant busses between the processor and the communications controller. If one of the busses malfunctions, another is available to maintain communications. A further refinement is to provide for redundant processors so that if a processor malfunctions another can take its place.
The communications line may be connected to more than one controller to avoid losing the use of all the communications lines when a communications controller malfunctions. This requires a dual-port remote port such as a dual-port disk drive. However, there is the great expense of requiring two communications controllers per communications line. This is acceptable with magnetic disk drives, because a large capacity disk drive can be very expensive and therefore worth the expense of providing two communications controllers. Communications lines and communications controllers are generally not so expensive.
This approach requires that several types of multiport controllers be developed and used to control several types of remote ports.
These controllers are assigned the task of communicating data from the computer system to a multiplicity of input-output ports. Different input-output ports have different electronic line level, data line level and block level communications protocols.
A standard practice is to design a communications controller with a particular electronic line level, a data line level, and a block level protocol. The electronic line level protocols have different electronic specifications, in that, the voltage and current levels are specified for the protocol.
The data line level protocol is the logic formatting of the data within small data blocks. A block of data comprises a multiplicity of data characters which in turn comprise a multiplicity of data bits. The data line level protocol determines the format, for example, the number of start bits, stop bits, even or odd parity, bit cell time, phase encoding, NRZ coding. Within this format the individual bits or individual characters are transferred.
The block level protocol determines the format, for example start character, stop character, error correction/deletion codes, end characters. Within the block level format, blocks of character bits are transferred. The block level protocol is concerned with transferring blocks of data between the controllers. The block level protocol maintains the integrity of a block during its transfer by the use of protocol codes, e.g. send-data and ackowledge.
The computer system may be required to use several different types of communications controllers depending upon the variety of communications ports connected to the computer system. A traditional method for providing such a variety of communications for each type of communications controller is to design a particular communications port attached to the computer system. The ports attached may have different electronic line level protocols, data line level protocols and block level protocols. Consequently, computer manufacturers have been required to undertake the design and development of a variety of communications controllers.
Typically, each controller has employed a microprocessor of a particular design. Additionally, each type of electronic line level protocol requires a particular electronic interface hardware design. Manufacturing costs are directly related to the number of different modules required.
A power supply is required to power the communication controllers. The computer system is dependent on its only power supply, because every component depends upon that power supply for continued operation. The computer system will fail if its only power supply system fails.